Tras el brote de la COVID-19, cada vez más personas trabajan, estudian y socializan desde sus casas. A lo largo de la cadena de valor de Internet, los operadores de comunicaciones, los proveedores de contenido y servicios en la nube, así como también los puntos de intercambio de Internet (IXP), han experimentado hasta un 60% más de tráfico de Internet en comparación con el tráfico previo al brote. En esta situación sin precedentes, la resiliencia y la capacidad de las redes de banda ancha se han vuelto aún más esenciales. consulte mas aqui
La base de datos proporcionada, nos brinda la cantidad de datos (en GB) que circulan a traves de distintos proveedores de servicios digitales por medio de su infraestructura de red. Este dataset contempla distintos provedores que pueden presentar correlacion entre ellos, por lo cual podrian ser omitidos para evitar estudiar informacion muy parecida en las series.
#Lectura de los datos del archivo csv.
datos_internet <- read.csv("Monitoreo de Tráfico de Internet_2.csv", header = TRUE,
sep = ",", check.names = FALSE)
datos_internet <- datos_internet %>% select(Fecha, Proveedor, Trafico_Datos_Local)
datos_internet <- mutate(datos_internet, Fecha = as.Date(Fecha, "%m/%d/%Y"),
Trafico_Datos_Local = as.numeric(Trafico_Datos_Local))De todos los proveedores, seleccionaremos a los 3 que mas datos generan de manera local asi como 1 de los que menos generan.
#Grafica de area.
ggplot(datos_internet, aes(x = Fecha, y = Trafico_Datos_Local)) +
geom_area(aes(color = Proveedor, fill = Proveedor),
alpha = 0.5, position=position_dodge(0.8)) +
ggtitle("Trafico de datos durante la pandemia") +
xlab("Mes 2020") +
ylab("Datos en GB") +
theme_minimal() +
scale_color_manual(values=c("#00AFBB", "#E7B800", "#CC0000", "#006600",
"#669999", "#00CCCC", "#660099", "#FC0066",
"#AF9999", "#FE99FF", "#559955", "#A990CC",
"#660099", "#CC0066")) +
scale_fill_manual(values=c( "#00AFBB", "#E7B800", "#CC0000", "#006600",
"#669999", "#00CCCC", "#660099", "#FC0066",
"#AF9999", "#FE99FF", "#559955", "#A990CC",
"#660099", "#CC0066"))En este caso fueron seleccionados: Movistar, Unefon, Clarovideo y DirecTV.
Vayamos a realizar un analisis ganeral de las series de tiempo que nos proporcionan los proveeedores de servicios. Tras observar cada una de las series, se puede llegar a un punto en comun, todas tienen puntos de inflexion cerca de los meses de Julio, Agosto y Enero, ya que estos son los meses de transicion de vacaciones a clases/trabajo o viceversa por parte de estudiantes o trabajadores; Por motivos de la pandemia, el regreso a labores se debe de realizar de manera puramente virtual y en algunos escasos casos de manera semipresencial. ¿A que va esto?, pues a que todo mundo ahorita depende de servicios de internet o de entretenimiento ya que por decreto oficial, nadie deberia de salir de su casa.
NOTA. Los datos atipicos de las graficas fueron “Normalizados”, sustituyendo el dato por el promedio del dato de un dia anterior con el de un dia posterior, esto con el fin de brindar un buen modelo de prediccion.
grafica_movi <- ggplot(movistar) +
geom_line(aes(x=Fecha, y= Trafico_Datos_Local), color="green", size=0.8) +
geom_point(aes(x=Fecha, y= Trafico_Datos_Local), size=1) +
ggtitle("Movistar") +
labs(x="Tiempo", y="Datos (GB)") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
ggplotly(grafica_movi)Antes que nada, se debe aclarar que la compañia “Movistar” es una empresa de servicios telefonia movil, cuyo proposito es comunicar a los cientos de miles de mexicanos con el mundo exterior y de manera local. En esta grafica se puede observar el alce de la demanda de servicios telefonicos justo cuando empezo el periodo vacacional y una caida una vez se regreso a dias laborales.
grafica_une <- ggplot(une) +
geom_line(aes(x=Fecha, y= Trafico_Datos_Local), color="yellow", size=0.8) +
geom_point(aes(x=Fecha, y= Trafico_Datos_Local), size=1) +
ggtitle("Unefon") +
labs(x="Tiempo", y="Datos (GB)") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
ggplotly(grafica_une)Como dato previo al analisis, se debe aclarar que la compañia “Unefon” es una empresa de servicios telefonia movil, cuyo proposito es comunicar a los cientos de miles de mexicanos con el mundo exterior y de manera local. En esta grafica se puede observar la misma demanda que tuvo movistar, pero con una mayor cantidad de usuarios asociados a esta telefonia al principio, tambien demuestra el alce de la demanda de servicios telefonicos justo cuando empezo el periodo vacacional y una caida una vez se regreso a dias laborales.
grafica_claro <- ggplot(claro) +
geom_line(aes(x=Fecha, y= Trafico_Datos_Local), color="red", size=0.8) +
geom_point(aes(x=Fecha, y= Trafico_Datos_Local), size=1) +
ggtitle("Claro") +
labs(x="Tiempo", y="Datos (GB)") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
ggplotly(grafica_claro)Como dato previo, se debe aclarar que la compañia “Claro” es una empresa de servicios internet y telefonia fija, asi como servicios de entretenimiento en linea, cuyo proposito es de brindar un servicio total a sus clientes. En esta grafica se puede observar un cambio significativo con respecto a las empresas anteriores, como esta es una empresa mas orientado a lo “fijo” y al entretenimiento, por motivos de confinamiento agarro mas fuerza y tuvo un incremento desde el inicio de la pandemia; como las personas se la pasan en su hogar, necesitan una forma de pasar el tiempo y que mejor con los servicios de entretenimiento qye ofrece esta empresa y ademas, si estas en casa, no hay necesidad de tener un plan movil de internet si ya tienes internet fijo.
grafica_directv <- ggplot(directv) +
geom_line(aes(x=Fecha, y= Trafico_Datos_Local), color="blue", size=0.8) +
geom_point(aes(x=Fecha, y= Trafico_Datos_Local), size=1) +
ggtitle("Directv") +
labs(x="Tiempo", y="Datos (GB)") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
ggplotly(grafica_directv)Como dato previo, se debe aclarar que la compañia “Directv” es una empresa de servicios de television por cable, cuyo proposito es de brindar canales exclusivos que no se pueden obtener a traves de television abierta a sus clientes. En esta grafica se puede observar un cambio significativo con respecto a las empresas anteriores, y un comportamiento casi contrario con respecto a Claro, ya que esta tambien provee servicio de entretenimiento, pero ¿Porque?. Muy facil!, el internet agarro gran fuerza, reemplazando asi la television abierta y por cable desde el momento en que salio y empresas exclusivas de entretenimiento que solo pueden ser visitados a traves de internet y de popularidad masiva, aprovecharon la pandemia para lanzar una gran cantidad de espectaculos, logrando asi que muchas personas que tenian television por cable, cancelaran el servicio porque en internet podian encontrar mas variedad y hasta los mismos programas por un precio mas barato o inclusive gratis!
Como breve conclusion de las graficas anteriores, Ante el confinamiento, los servicios de telefonía e internet fijos así como la TV de paga fueron los servicios que tomaron mayor fuerza al elevar sus ingresos y captar más clientes.
Es importante recordar que, al ajustar un modelo, los residuales de este deben comportarse como ruido blanco.
Movistar Para la empresa Movistar, realizamos la serie de tiempo, y utilizamos la función auto.arima para ajustar el mejor modelo posible a los datos. Para comprobar que es un buen modelo, hacemos el test Ljung-Box, obteniendo un p_value = 0.9735, por lo cual los residuales se comportan como ruido blanco, por lo que el modelo puede ser usado para predecir.
ts_movistar = ts(movistar$Trafico_Datos_Local, start = c(2020,3,30),
end = c(2021,1,26), frequency = 300)
#Suavizamos el modelo para obtener una mejor prediccion.
ma_ts_movistar <- ma(ts_movistar,2)
modelo_arima_movistar <- auto.arima(ma_ts_movistar)
summary(modelo_arima_movistar) Series: ma_ts_movistar
ARIMA(3,1,4) with drift
Coefficients:
ar1 ar2 ar3 ma1 ma2 ma3 ma4 drift
0.9085 -0.5576 -0.3138 0.6828 -0.7544 0.3604 0.7987 441.9321
s.e. 0.0655 0.0774 0.0654 0.0449 0.0890 0.1073 0.0536 642.1839
sigma^2 estimated as 26776074: log likelihood=-2954.69
AIC=5927.39 AICc=5928.01 BIC=5960.6
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 17.59574 5095.555 3995.632 0.01233925 0.7941021 NaN -0.07332442
Box-Ljung test
data: residuals(modelo_arima_movistar)
X-squared = 1.613, df = 1, p-value = 0.2041
#Ver si es un buen modelo.
prediccion_movistar <- forecast(modelo_arima_movistar,10,level=95)
plot(prediccion_movistar, main="Pronostico para Movistar.")Este modelo presento un poco de problemas para ajustar un buen modelo, al aplicar medias moviles de orden 2, se obtuvo un un mejor ajuste pero no del todo excelente.
ts_claro = ts(claro$Trafico_Datos_Local, start = c(2020,3,30),
end = c(2021,1,26), frequency=305)
modelo_arima_claro <- Arima(ts_claro, order = c(3,2,2))
summary(modelo_arima_claro) Series: ts_claro
ARIMA(3,2,2)
Coefficients:
ar1 ar2 ar3 ma1 ma2
0.4597 -0.2298 -0.3165 -1.8154 0.8304
s.e. 0.0623 0.0602 0.0597 0.0371 0.0367
sigma^2 estimated as 4.065e+09: log likelihood=-3770.64
AIC=7553.28 AICc=7553.57 BIC=7575.54
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set -32.53311 63016.1 50555.39 -0.2353234 4.757215 NaN -0.08174628
Box-Ljung test
data: residuals(modelo_arima_claro)
X-squared = 2.0516, df = 1, p-value = 0.152
#Ver si es un buen modelo.
prediccion_claro <- forecast(modelo_arima_claro,10,level=95)
plot(prediccion_claro, main="Pronostico para Claro") ts_unefon = ts(une$Trafico_Datos_Local,start = c(2020,3,30),
end = c(2021,1,26), frequency=305)
modelo_arima_unefon <- auto.arima(ts_unefon)
summary(modelo_arima_unefon) Series: ts_unefon
ARIMA(4,1,2)
Coefficients:
ar1 ar2 ar3 ar4 ma1 ma2
0.6498 -0.5720 -0.1813 -0.3071 -1.1905 0.7929
s.e. 0.0707 0.0722 0.0674 0.0618 0.0471 0.0644
sigma^2 estimated as 1.324e+09: log likelihood=-3610.48
AIC=7234.95 AICc=7235.33 BIC=7260.95
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 106.0698 35969.85 28333.74 -0.1381419 3.491657 NaN -0.0307313
Box-Ljung test
data: residuals(modelo_arima_unefon)
X-squared = 0.28994, df = 1, p-value = 0.5903
#Ver si es un buen modelo.
prediccion_unefon <- forecast(modelo_arima_unefon, 12, level=95)
plot(prediccion_unefon, main="Pronostico para Unefon") ts_directv = ts(directv$Trafico_Datos_Local, start = c(2020,3,30),
end = c(2021,1,26), frequency=305)
modelo_arima_directv <- auto.arima(ts_directv, seasonal=TRUE)
summary(modelo_arima_directv) Series: ts_directv
ARIMA(2,1,2) with drift
Coefficients:
ar1 ar2 ma1 ma2 drift
1.1069 -0.663 -1.3949 0.5808 -8.5755
s.e. 0.0692 0.064 0.0727 0.0709 35.1089
sigma^2 estimated as 3362602: log likelihood=-2704.81
AIC=5421.62 AICc=5421.9 BIC=5443.9
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 11.12746 1815.554 1440.87 -0.0728653 2.683842 NaN -0.07059401
Box-Ljung test
data: residuals(modelo_arima_directv)
X-squared = 1.53, df = 1, p-value = 0.2161
#Ver si es un buen modelo.
prediccion_directv <- forecast(modelo_arima_directv, 12, level=95)
plot(prediccion_directv, main="Pronostico para Directv")